home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / hash / Hash_InitTable.man < prev    next >
Text File  |  1988-12-30  |  2KB  |  76 lines

  1. \fB' $Header: /sprite/src/lib/c/hash/RCS/Hash_InitTable.man,v 1.1 88/12/30 15:05:24 ouster Exp $ SPRITE (Berkeley)
  2. .so \*(]ltmac.sprite
  3. .HS Hash_InitTable lib
  4. .BS
  5. .SH NAME
  6. Hash_InitTable \- set up new hash table
  7. .SH SYNOPSIS
  8. \fB#include <hash.h>\fR
  9. .sp
  10. Hash_InitTable(\fItablePtr, numBuckets, keyType\fR)
  11. .AS Hash_Table numBuckets
  12. .SH ARGUMENTS
  13. .AP Hash_Table *tablePtr in
  14. Structure to use to hold information about hash table.  Caller
  15. must have allocated space at *tablePtr, but need not have initialized
  16. contents.
  17. .AP int numBuckets in
  18. How many buckets should be in table initially.  If <= 0, a reasonable
  19. default will be chosen.  In any case, the number of buckets will
  20. change dynamically as the number of entries in the table grows.
  21. .AP int keyType in
  22. What type of keys will be used for table:  \fBHASH_STRING_KEYS\fR,
  23. \fBHASH_ONE_WORD_KEYS\fR, or integer >= 2.
  24. .BE
  25.  
  26. .SH DESCRIPTION
  27. .LP
  28. \fBHash_InitTable\fR initializes a Hash_Table structure and sets up
  29. bucket storage for the table, with no entries in the table initially.
  30. It must be called before any other operations are performed on the
  31. hash table.
  32. .LP
  33. The \fIkeyType\fP argument indicates what type of keys will be used
  34. in the table.  HASH_STRING_KEYS means that all keys will be strings,
  35. and that the \fIkey\fP argument to procedures like Hash_FindEntry will
  36. be passed in as a string:
  37. .DS
  38.  
  39. Hash_Table table;
  40. Hash_Entry *entryPtr;
  41. char *key = "foobar";
  42.  
  43. Hash_InitTable(&table, 0, HASH_STRING_KEYS); 
  44. entryPtr = Hash_FindEntry(&table, key);
  45.  
  46. .DE
  47. If \fIkeyType\fP is HASH_ONE_WORD_KEYS,
  48. then keys will be one-word (Address) values;  \fIkey\fP arguments passed
  49. to procedures like \fBHash_FindEntry\fR may be integers or any other values of
  50. the same size as addresses, passed by casting the value to an Address:
  51. .DS
  52.  
  53. Hash_Table table;
  54. Hash_Entry *entryPtr;
  55. int key = 24;
  56.  
  57. Hash_InitTable(&table, 0, HASH_ONE_WORD_KEYS);
  58. entryPtr = Hash_FindEntry(&table, (Address) key);
  59.  
  60. .DE
  61. Finally, if \fIkeyType\fP is an integer greater than 1, then keys
  62. are multi-word values containing \fIkeyType\fP words (not bytes!),
  63. passed into procedures like \fBHash_FindEntry\fR by address:
  64. .DS
  65.  
  66. Hash_Table table;
  67. Hash_Entry *entryPtr;
  68. int key[6] = {1,2,3,4,5,6};
  69.  
  70. Hash_InitTable(&table, 0, 6);
  71. entryPtr = Hash_CreateEntry(tablePtr, (Address) key);
  72. .DE
  73.  
  74. .SH KEYWORDS
  75. hash table, initialization, key
  76.